Algorithmic Ecology